/* 
 * File:   Processor.h
 * Author: max
 *
 * Created on April 8, 2013, 11:25 PM
 */

#ifndef PROCESSOR_H
#define	PROCESSOR_H

#include <string>
using namespace std;

namespace TP3 { namespace Working {

#define MEM_ERROR 200
#define INPUT_FILE_ERROR 2
#define OUTPUT_FILE_ERROR 2    
    
class Processor {
public:

    Processor(const char* rulesPath, const char* inPutPath,const char* outPutPath);

    virtual ~Processor();
    
    void Process () throw (int);
    
private:

    void initInput () throw (int);

    void initOutPut () throw (int);
    
    void finilizeInput() throw (int);
    
    void finilizeOutPut() throw (int);

    string _inPutPath
         , _outPutPath
         , _rulesPath;
    
    istream *_inPut;
    ostream *_outPut;
    
};

}}

#endif	/* PROCESSOR_H */

